Field of the Invention
The present invention is generally related to optimizing the transfer of packetized data between electronic devices in a computer network. More specifically, the present invention relates to assembling, and compressing a plurality of fragmented packets in a manner that minimizes the size of payload data when transferring digital information over a computer network. Description of the Related Art
Internet protocol (IP) payload compression (IPComp) is a technique that compresses and encrypts IP packets as the IP packets are being transmitted through a computer network. Conventionally a set of data or a stream of data is fragmented into a series of packets that are commonly referred to as fragmented IP packets. Generally an electronic device such as a gateway compresses, encrypts, and re-transmits fragmented packets of information as they are received. After being received at a destination the packets are de-encrypted, de-compressed, and re-assembled into the complete data set or data stream.
A series of fragmented packets may include any sort of computer data that is transmitted from a source computer to a destination computer communicating over a computer network. The packets may contain information relating to a file, a message, commands, a video or audio stream, or may include encapsulated data.
Data transferred over a computer network may be a datagram, which may be a self-contained data structure including sufficient information to be routed from a source computer to a destination computer without requiring exchanges of information that setup or configure a communication path between the source computer and the destination computer or a computer network over which the datagram is transmitted. Datagrams may be transmitted over standard computer networks. Datagrams commonly include fields of information that may include a preamble, a header length, a header checksum, a destination address, a source address, payload data, a data type, a length field, and a frame sequence number. In certain instances all of the information included in a datagram is compressed and then encapsulated into a set of data before an IP packet including the datagram is transmitted. In certain instances a datagram may be an IP packet or be encapsulated within an IP packet.
Frequently, at least some of the information included in the datagram is information that is not used by an application program at the destination computer. For example, an application program playing streaming audio may only require the payload data in the datagram. When transmitted over a computer network these additional pieces of information consume a portion of the overall network bandwidth. The more packets used to transfer a particular data set increase the overhead associated with transferring data over a computer network. For example, a data set transferred over a computer network using 10 packets could include twice as much additional pieces of information (i.e., overhead) than the same set of data transferred over the computer network using 5 packets.
Another factor that increases the overhead associated with transferring data over a computer network is the compression efficiency. Generally data from a data set when compressed will include fewer bytes of data as compared to fragmenting the data set into a plurality of pieces and then compressing each of the plurality of pieces of fragmented data independently.
Electronic devices transferring packets over a computer network commonly compress, encrypt, and then re-transmit packets as they are received. This practice increases the overhead associated with transferring data over the computer network because the total number of bytes transferred over the computer network is not optimized. Legacy computer networks commonly use standardized IPComp techniques when re-transmitting a plurality of fragmented packets over a computer network. Even though IPComp protocols reduce the size of IP datagrams transmitted over the internet, IPComp protocols do not maximize the efficiency of transmitting these fragmented packets. One reason for this is that the packets transmitted may not be of an optimal size when they are compressed.
An example of an IPComp protocol is the RFC3173 standardized compression protocol. Frequently IPComp is used with an IP security (IPSec) Virtual Private Network (VPN) when transmitting packets over a computer network. When IPComp is combined with a secure IPSec VPN, fragmented packets received are compressed according to an IPComp standard, each compressed packet is then individually encrypted by a IPSec VPN engine, and then each compressed/encrypted packet is transmitted over the computer network to a destination address.
What is needed is an increase in the efficiency of transmitting data over a computer network as to reduce the number of bytes of data transferred over the computer network.